package com.frx.leetcode.base.arraytest;
/**
 * @author ：frx
 * @date ：Created in 2019/7/24 22:57
 * @description： 找出数组中只出现过一次的数字 除这个数字外，其他数字都是出现两次
 *               输入： [2,2,1]  输出：1
 *               输入： [4,1,2,1,2]  输出: 4
 *               要求：算法要有线性的时间复杂度，不用额外空间来实现
 * @modified By：
 * @version: ToDO
 */
public class OneTime {

    public static void main(String[] args){
        int[] nums = {1,2,4,1,2};
        System.out.println(solution(nums));
    }

    /** 异或操作*/
    public static int solution(int[] nums){
        int ans = nums[0];

        for (int i = 1; i<nums.length;i++){
            ans = ans ^ nums[i];
        }
        return ans;
    }
}
